package com.example.demo

class MyObject {
    String value

    MyObject(String value) {
        this.value = value
    }

    def leftShift(String str) {
        this.value += str
        this // 返回当前对象，以支持链式调用
    }
}

// 自定义操作符
def leftShift(Object self, String str) {
    self.leftShift(str)
}

// 使用自定义操作符
def testCustomOperator() {
    def obj = new MyObject("Hello ")
    obj << "World!"
    assert obj.value == "Hello World!"

    println obj.value
}

// 注册操作符方法
use(Operators) {
    testCustomOperator()
}

// Operators类定义
class Operators {
    static leftShift(Object self, String str) {
        leftShift(self, str)
    }
}
